package com.fenqile.pop.product.param;

import java.time.LocalDateTime;

import com.fenqile.pop.enums.DeliverySourceKind;
import com.fenqile.pop.enums.ServicePromiseKind;
import com.fenqile.pop.product.result.ProductModifyResult;

/**
 * 添加商品 {@value #API_METHOD}
 * 
 * @see AbstractPriceStrategyParameter
 * @see ProductModifyResult
 * 
 * @author Coby [cobylin@live.com] 2017
 */
public class ProductAddParameter extends AbstractPriceStrategyParameter<ProductModifyResult> {
	public static final String API_METHOD = "fenqile.product.add";
	
	/**
	 * 商品标题，最大字节个数 50
	 * 必须  
	 */
	public String product_name; 
	
	/**
	 * 商品短标题，最大字节个数 14 
	 */
	public String short_product_name;
	
	/**
	 * 商品描述，最大字节个数 80 
	 */
	public String product_desc; 
	
	/**
	 * 副标题末尾是 否增加文字链 0 不勾选 1 勾 选 默认0
	 */
	public Integer title_app_flag;
	
	/**
	 * 链接文本，title_app_flag 必须为1。最大 字节个数20
	 */
	public String link_text;
	
	/**
	 * 站内PC链接，title_app_flag 必须为1。最大 字节个数1024 
	 */
	public String site_pc_link;
	/**
	 * 站内H5链接，title_app_flag 必须为1。最大 字节个数1024
	 */
	public String site_h5_link;
	
	/**
	 * 品牌id
	 * 必须
	 */
	public Integer brand_id;
	
	/**
	 * 一级类目id
	 * 必须
	 */
	public Integer category_id_1;
	
	/**
	 * 二级类目id
	 * 必须
	 */
	public Integer category_id_2;
	
	/**
	 * 三级类目id，
	 * 若系统配置最小类目为三级类目，
	 * 则必须
	 */
	public Integer category_id_3;
	
	/**
	 * 上架时间，yyyy-MM_dd HH:mm:ss
	 */
	public LocalDateTime start_time;
	
	/**
	 * 服务承诺 格式 (id1:val1|id2:v al2|...)，
	 * 其中 id 为服务承诺 id,val(0 不选,1 选择)。
	 * quality_goods_flag: 1|truly_desc_flag:1| free_reback_flag_1: 1|free_reback_flag_2:0
	 */
	public ServicePromiseKind service;
	
	/**
	 * 销售属性 id，最多 3 个。
	 * 格式 key1|key2|..., 其中 key 为销 售属性id。使用 接口 fenqile.sku.fe ature.get获取
	 * 必须 
	 */
	public String feature;  
	
	/**
	 * 出仓类型
	 * 必须
	 */
	public DeliverySourceKind delivery_type;
	
	/**
	 * 店铺商品分类 id 。格式 id1,id2,...，以英 文半角逗号分隔
	 */
	public String classify_ids;
	
	/**
	 * 外部商品编码，最大64字节
	 * 必须
	 */
	public String third_product_id;
	
	/**
	 * 商品属性。格式 key1:value1# extra1,value2, ...|key2:value1 ,value2#extra 2,...|..., 其中 key为属性id， 每个 value 之 间使用英文半 角逗号分割，若 一个值有附加 信息, 使用#分 隔。属性 id 等 信息使用接口 fenqile.produ ct.feature.get 获取
	 * 商品属性至少 一个，其属性值 至少一个，每个 属性值的附加 信息只支持一 种，即图片上传 相对地址(图片 上传)
	 * 必须
	 */
	public String product_feature; 
	
	
	@Override
	public String getApiMethod() {
		return API_METHOD;
	}

}
